Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / pwa / swClientRegister.js

Displaying Raw • Download


meshchatx/src/frontend/js/pwa/swClientRegister.js e0f1f99cd1c208c5008a936230c38e448dddd45d (e0f1f99c) Text, 1.39 KB

T8b949e// SPDX-License-Identifier: 0BSD

T8b949e/**
* Client-side service worker registration helpers (browser only, not Electron).
*/

T8b949e/**
* Reload only when replacing an existing controller, and only once per page life.
* @param {{ hadController: boolean, refreshing: boolean }} state
* @returns {{ shouldReload: boolean, nextRefreshing: boolean }}
*/
Tff7b72export Tff7b72function Te6edf3decideControllerChangeReloadTb4b4b4(Te6edf3stateTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3hadController Tff7b72= Tffa657BooleanTb4b4b4(Te6edf3stateTff7b72?Tb4b4b4.Te6edf3hadControllerTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3refreshing Tff7b72= Tffa657BooleanTb4b4b4(Te6edf3stateTff7b72?Tb4b4b4.Te6edf3refreshingTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3hadController Tff7b72|| Te6edf3refreshingTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{ Te6edf3shouldReloadTff7b72: Tff7b72falseTb4b4b4, Te6edf3nextRefreshingTff7b72: Te6edf3refreshing Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{ Te6edf3shouldReloadTff7b72: Tff7b72trueTb4b4b4, Te6edf3nextRefreshingTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {unknown} error
* @returns {boolean}
*/
Tff7b72export Tff7b72function Te6edf3isIgnorableServiceWorkerRegistrationErrorTb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3errorMessage Tff7b72= Te6edf3error Tff7b72&& Tff7b72typeof Te6edf3error Tff7b72=== Ta5d6ff"object" Tff7b72&& Ta5d6ff"message" Tff7b72in Te6edf3error Tff7b72? Tffa657StringTb4b4b4(Te6edf3errorTb4b4b4.Te6edf3message Tff7b72|| Ta5d6ff""Tb4b4b4) Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3errorName Tff7b72= Te6edf3error Tff7b72&& Tff7b72typeof Te6edf3error Tff7b72=== Ta5d6ff"object" Tff7b72&& Ta5d6ff"name" Tff7b72in Te6edf3error Tff7b72? Tffa657StringTb4b4b4(Te6edf3errorTb4b4b4.Te6edf3name Tff7b72|| Ta5d6ff""Tb4b4b4) Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72return Tb4b4b4(
Te6edf3errorName Tff7b72=== Ta5d6ff"SecurityError" Tff7b72||
Te6edf3errorMessageTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"SSL certificate"Tb4b4b4) Tff7b72||
Te6edf3errorMessageTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"certificate"Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* Registration options that keep SW script discovery fresh.
* @returns {{ updateViaCache: "none" }}
*/
Tff7b72export Tff7b72function Te6edf3serviceWorkerRegisterOptionsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{ Te6edf3updateViaCacheTff7b72: Ta5d6ff"none" Tb4b4b4}Tb4b4b4;
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────